Skip to content

fix(ci): download arch-specific DuckDB macOS builds - #139

Merged
adsharma merged 15 commits into
mainfrom
fix-duckdb-osx-download
Oct 21, 2026
Merged

adsharma merged 15 commits into
mainfrom
fix-duckdb-osx-download

Conversation

@adsharma

Copy link
Copy Markdown
Contributor

DuckDB 2.0.0 split libduckdb-osx-universal.zip into libduckdb-osx-amd64.zip and libduckdb-osx-arm64.zip.

Set DUCKDB_ARCH based on runner.arch (X64|AMD64 → osx-amd64, ARM64 → osx-arm64) instead of the removed osx-universal archive. Fixes the 404 on the macOS DuckDB download step.

DuckDB 2.0.0 split libduckdb-osx-universal.zip into
libduckdb-osx-amd64.zip and libduckdb-osx-arm64.zip.
Select DUCKDB_ARCH based on runner.arch (X64|AMD64 -> osx-amd64,
ARM64 -> osx-arm64) instead of the removed osx-universal archive.
2.0.0 removed libduckdb-*.zip (and latest now resolves to 2.0.0,
breaking every download with 404). Use the renamed
duckdb-shared-libs-<os>-<arch>.tar.gz, pinned to v2.0.0.

2.0.0 also dropped the amalgamated duckdb.hpp from release assets,
so fetch the C++ headers from a sparse source checkout at the same
tag (verified the C headers there are byte-identical to the tarball
ones) and install the same file set as before: duckdb*.h,
duckdb.hpp, duckdb/ tree, and the shared lib.
2.0.0 removed MaterializedQueryResult; Connection::Query now returns
unique_ptr<QueryResult>, a forward-only stream. Replace indexed
GetValue(col, row) access with chunk Fetch() / row iterators, fetch
the first chunk once and thread it through the placeholder-schema
check (fetching consumes the stream), and convert the now
vector<Identifier> names to strings via GetIdentifierName().
names/types are now private on QueryResult: use GetNames()/GetTypes().
Vector::GetData() is gone: use FlatVector::GetData[Mutable]. The
deprecated ListVector::GetEntry would trip -Werror: use GetChildMutable.
Add the now-required list_vector.hpp/struct_vector.hpp includes.
…ug checkout

GetEntries now returns vector<Vector> (was pointer elements): drop the
dereferences.

Temporarily check out ladybug at the DuckDB-2.0.0 PR branch, which
carries the AttachedDatabase::executeQuery base-class fix this build
needs. Revert to the default branch once that PR merges.
names/types are private on QueryResult: use ColumnCount()/GetTypes(),
and convert Identifier to string explicitly via GetIdentifierName().
names/types are private on QueryResult: use GetTypes()/GetNames() and
convert Identifier explicitly via GetIdentifierName().
The templated GetDataMutable<T> validates T against DuckDB's own
types and throws for ladybug-side types (e.g. interval_t/string_t).
Use the untyped accessors plus casts exactly like the old GetData()
member did.
2.0.0 executes the inner postgres_query statement at bind time, so DDL
and DML no longer fail with 'No fields returned' but run (or fail
confusingly, e.g. read-only errors) during planning. Validate that the
inner query is a plain SELECT up front via ExtractStatements. 2.0.0
also stopped rejecting duplicate output column names, so enforce the
historical contract in bind.

Update remote attach-not-exist expectations to the 2.0.0 httpfs error
messages.
sql_query DDL rejection now comes from ladybug's binder ('Binder
exception:') instead of DuckDB; duplicate output columns are
auto-renamed (name_1) instead of rejected, so assert the new
successful shape. Remote-attach failures now surface raw httpfs
errors; match them without regex paren escapes.
PG numeric-to-hugeint conversion rounds differently in 2.0.0
(closer to the true value); update the movies hugedata expectation.
The S3 missing-file error now carries trailing hint text, so allow
trailing content in the match.
@adsharma
adsharma merged commit 119912e into main Oct 21, 2026
2 checks passed
@adsharma
adsharma deleted the fix-duckdb-osx-download branch October 21, 2026 21:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant